#include <iostream>
using namespace std;

class Base1{
public:
  virtual void Func1(){
    cout << "Base1::Func1()" << endl;
  }
};

class Base2{
public:
  virtual void Func1(){
    cout << "Base2::Func1()" << endl;
  }
};

class Derive:public Base1, public Base2{
public:
  //virtual void Func1(){
  //  cout << "Derive::Func1()" << endl;                       
  //}
  //virtual void Func2(){
  //  cout << "Derive::Func2()" << endl;                       
  //}
  virtual void Func3(){
    cout << "Derive::Func3()" << endl;
  }
};

int main(){
  Derive d;
  Base1 *p1 = &d;
  p1->Func1();
  d.Base2::Func1();
  d.Func3();
}
